From: Benjamin Otte Date: Wed, 15 Jun 2011 20:50:59 +0000 (+0200) Subject: toolbar: Better fix for animations X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~39^2~21008 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e54ccaee53dbdf1842bc245a219bce88ef82b28a;p=gtk%2B3.0.git toolbar: Better fix for animations It turns out there's more places where the toolbar item size is used as the margin box instead of the content box. Because of that, store the margin box when allocating and use it whenever calls toolbar_content_get_allocation() instead of calling gtk_widget_get_allocation(). --- diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c index da55c6a988..6abec0c925 100644 --- a/gtk/gtktoolbar.c +++ b/gtk/gtktoolbar.c @@ -3253,6 +3253,7 @@ struct _ToolbarContent ItemState state; GtkToolItem *item; + GtkAllocation allocation; GtkAllocation start_allocation; GtkAllocation goal_allocation; guint is_placeholder : 1; @@ -3466,7 +3467,7 @@ static void toolbar_content_get_allocation (ToolbarContent *content, GtkAllocation *allocation) { - gtk_widget_get_allocation (GTK_WIDGET (content->item), allocation); + *allocation = content->allocation; } static void @@ -3513,20 +3514,9 @@ static void toolbar_content_size_allocate (ToolbarContent *content, GtkAllocation *allocation) { - GtkAllocation goal; - + content->allocation = *allocation; gtk_widget_size_allocate (GTK_WIDGET (content->item), allocation); - - toolbar_content_get_goal_allocation (content, &goal); - if (goal.x == allocation->x && - goal.y == allocation->y && - goal.width == allocation->width && - goal.height == allocation->height) - { - gtk_widget_get_allocation (GTK_WIDGET (content->item), &goal); - toolbar_content_set_goal_allocation (content, &goal); - } } static void